﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using HA.ModFlow.Infrastructure;

namespace HA.Data
{
    [Serializable]
    public class CellCenterVector3dDS : DataSet3d
    {
        public CellCenterVector3dDS(FlowVector[, ,] data, List<int[,]> iBound)
            : base(data.GetLength(0), data.GetLength(1), data.GetLength(2))
        {

            if (iBound == null)
            {
                this._effIBound = new List<int[,]>();

                for (int layer = 0; layer < this.Nlayers; layer++)
                {
                    int[,] layerCell = new int[this.Nrows, this.Ncols];

                    this._effIBound.Add(layerCell);

                }

            }
            else
            {
                this._effIBound = iBound;
            }


            this._vectors = data;

        }


        public CellCenterVector3dDS(FlowVector[, ,] data, List<int[,]> iBound, double invalidValue)
            : base(data.GetLength(0), data.GetLength(1), data.GetLength(2))
        {

            this.InvalidValue = invalidValue;

            if (iBound == null)
            {
                this._effIBound = new List<int[,]>();

                for (int layer = 0; layer < this.Nlayers; layer++)
                {
                    int[,] layerCell = new int[this.Nrows, this.Ncols];

                    this._effIBound.Add(layerCell);

                }

            }
            else
            {
                this._effIBound = iBound;
            }


            this._vectors = data;




        }



        List<int[,]> _effIBound;
        /// <summary>
        /// 单元有效性  
        /// </summary>
        public List<int[,]> EffIBound
        {
            get { return _effIBound; }
            //set { _effIBound = value; }
        }



        FlowVector[, ,] _vectors;

        /// <summary>
        /// 核心数据
        /// </summary>
        public FlowVector[, ,] Vectors
        {
            get { return _vectors; }
            set { _vectors = value; }
        }






    }
}
